package com.guoxin.part4.chapter19;

public interface FutureService<IN, OUT> {

    // 提交不需要返回值的任务，Future.get 方法返回的将会是 null
    Future<?> submit(Runnable runnable);

    // 提交需要返回值的任务，其中Task接口代替了Runnable接口
    Future<OUT> submint(Task<IN, OUT> task, IN input);

    static <T, R> FutureService<T, R> newService() {
        return new FutureServiceImpl<>();
    }
}
